﻿using QuanLyGiaoVuDAL.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QuanLyGiaoVuDAL.Repositories.DatabaseRepositories
{
    public interface IGiangVienRepository
    {
        GiangVienDTO GetGiangVienById(Guid id);
        GiangVienDTO GetGiangVienByEmail(String email);
        IEnumerable<GiangVienDTO> GetAllGiangVien();
        GiangVienDTO InsertGiangVien(GiangVienDTO giangVien);
        GiangVienDTO UpdateGiangVien(GiangVienDTO giangVien);
        bool DeleteGiangVien(String ids);
        HocViDTO GetHocViById(Int32 maHocVi);
        IEnumerable<HocViDTO> GetAllHocVi();
        HocHamDTO GetHocHamById(Int32 maHocHam);
        IEnumerable<HocHamDTO> GetAllHocHam();
        ChucVuDTO GetChucVuByMaChucVu(Guid maChucVu);
        IEnumerable<ChucVuDTO> GetAllChucVu();
        IEnumerable<ChucVuDTO> GetAllChucVuGiangVien(Guid id);
        IEnumerable<ChucDanhDTO> GetAllChucDanh();
        IEnumerable<BoMonDTO> GetAllBoMon();
        ChucDanhDTO GetChucDanhByMaChucDanh(Guid maChucDanh);
        IEnumerable<MonHocDTO> GetAllMonHocByGiangVienId(Guid giangVienId);
        bool InsertMonHoc(Guid giangVienId, Guid monHocId);
        bool DeleteMonHoc(Guid giangVienId, Guid monHocId);
        bool InsertChucVu(Guid giangVienId, Guid chucVuId);
        bool DeleteChucVu(Guid giangVienid, Guid chucVuId);

        LichRanhDTO GetLichRanhById(Guid lichRanhId);
        IEnumerable<LichRanhDTO> GetAllLichRanh(Guid? maGiangVien, bool? buoi, int? thu);
        LichRanhDTO InsertLichRanh(LichRanhDTO lichRanhDTO);
        bool DeleteLichRanh(Guid maLichRanh);
    }
}
